import { showToast, upload } from "/utils/common";
const app = getApp();

Component({
  mixins: [],
  data: {
    hasStart: false,
    canUseRecord: true,//是否可以使用录音功能
    rm: null
  },
  props: {
    show: false,
    onClose: () => { },
    onChange: () => { }
  },
  didMount() {
    if (dd.canIUse('getRecorderManager')) {
      this.data.rm = dd.getRecorderManager();//录音管理器
      this.data.rm.onstart = () => {
        console.log('开始录音');
      }
      this.data.rm.onstop = (res) => {
        upload({
          type: 'audio',
          url: res.tempFilePath
        }).then(res => {
          this.props.onChange(res)
        })
      }
      this.data.rm.onerror = (err) => {
        showToast({ msg: JSON.stringify(err) });
      }
    } else {
      this.data.canUseRecord = false;
      showToast({ msg: '请升级钉钉版本至4.5.18以支持录音功能' })
    }
  },
  didUpdate() { },
  didUnmount() { },
  methods: {
    /**
   * 触摸动作开始
   */
    recordStart() {
      if (!this.data.canUseRecord)
        return
      this.setData({
        hasStart: true
      });
      this.data.rm.start({ duration: 60 });//不写duration，在Android上会报错，errorCode-2-参数错误；暂未发现录音时长上线
    },

    /**
     * 触摸动作结束
     */
    recordEnd(e) {
      if (!this.data.canUseRecord)
        return
      this.setData({
        hasStart: false
      });
      this.data.rm.stop();
    },
    onCancel() {
      this.props.onClose()
    },
    /**
     * 触摸动作被打断，如来电提醒，弹窗
     */
    recordCancel() {
      if (!this.data.canUseRecord)
        return
      this.setData({
        hasStart: false
      });
    },
  },

  /**
   * 播放全部录音
   */
  // playAllAudio() {
  //   let length = this.data.recordAudioArr.length;//录音的总数
  //   let index = 0;//录音的索引
  //   let bam = dd.getBackgroundAudioManager();
  //   //监听背景音频结束事件
  //   bam.onEnded = (e) => {
  //     index++;
  //     if (index >= length)
  //       return
  //     bam.src = this.data.recordAudioArr[index];
  //     bam.title = '';//不实例化此属性，ios调用多次play()，playbackRate会累加
  //     bam.play();
  //   }
  //   //监听背景音频错误事件, 错误类型（10001-系统错误 10002-网络错误 10003-文件错误 10004-格式错误）
  //   bam.onError = (err) => {
  //     dd.showToast({ content: JSON.stringify(err) });
  //   }
  //   bam.src = this.data.recordAudioArr[index];
  //   bam.title = '';//不实例化此属性，ios调用多次play()，playbackRate会累加
  //   bam.play();
  // },

  // /**
  //  * 播放单段录音
  //  */
  // playSingleAudio(e) {
  //   let bam = dd.getBackgroundAudioManager();//背景音频管理器
  //   //监听背景音频错误事件, 错误类型（10001-系统错误 10002-网络错误 10003-文件错误 10004-格式错误）
  //   bam.onError = (err) => {
  //     dd.showToast({ content: JSON.stringify(err) });
  //   }
  //   let idx = e.currentTarget.dataset.idx;//录音的索引
  //   bam.src = this.data.recordAudioArr[idx];
  //   bam.title = '';//不实例化此属性，ios调用多次play()，playbackRate会累加
  //   bam.play();
  // },
});
